Computers have dutifully performed billions of tasks commanded of them from computer users worldwide. Many of these tasks were quite simple for the computer to perform, and were completed with results displayed to the user almost instantaneously. However, some tasks requested by users of computers are much more complex, and require a considerable amount of processing power and time to complete.
Some of these complex tasks can take several seconds, minutes, or even several hours or days to complete. Even though a computer may be working frantically under the covers to satisfy a complex task requested by a user, the user quite often is given no indication as to what progress, if any, is being made in completing the task. Often after a large amount of time has elapsed, a user will erroneously conclude that the computer has encountered an error and has "hanged" or "gone casters up", and needs to be restarted. This scenario is frustrating to a computer user, who feels uninformed as to the progress of his requested task. More importantly, valuable computer resources are wasted if a computer is erroneously restarted in the middle of a complex task just because of poor or non-existent progress feedback to the user.
Attempts to address this problem have so far been quite primitive. Some programs display only a number, such as 100 or 10, and count down to zero as a task is being processed. Other programs display a message, such as "Working on your request" over and over again, alternately displaying the message highlighted and non-highlighted. Neither of these techniques truly inform the user as to the progress of a task--they merely give the user something that changes on the screen to look at. Although these techniques may help in discouraging a user from restarting a system for awhile, the feedback provided does not give a user a warm feeling that progress is really being made on his task.
A better attempt at solving this problem is to repeatedly display a truly useful message to the user, such as "Now processing object number 12 out of 100", or "This task will complete in 5.05 minutes". Unfortunately, these messages need to be translated into several different languages when the computer is sold around the world, and this requirement can be quite burdensome and yield unpredictable results. In addition, these messages can be quite wasteful of space, and some languages require more space than other languages to communicate the same meaning.